// code换取openid函数
function get_login_openid(invite_openid) {
	var that = this;
	// 使用 code 换取 openid, session_key
	wx.login({
		success: res => {
			// 发送 res.code 到后台换取 openId, sessionKey, unionId
			if (res.code) {
				wx.request({
					url: 'https://x.quhuichang.cn/api/code_get_openid/',
					data: {
						invite_openid: invite_openid,
						code: res.code,
						signstr: 'dream_ren_3016',
					},
					header: {
						'content-type': 'application/json'
					},
					success: function (res) {
						if (res.statusCode == 200) {
							// console.log(res.data)
							// 清除
							wx.removeStorageSync('usr_wx_openid');
							wx.removeStorageSync('usr_wx_phone');
							wx.removeStorageSync('usr_all_info');
							wx.removeStorageSync('usr_sign');
							// 存储
							wx.setStorageSync('usr_wx_openid', res.data.openid);
							wx.setStorageSync('usr_sign', res.data.usr_sign);
							wx.setStorageSync('usr_all_info', res.data.usr_all_info);
							if (res.data.usr_phone) {
								wx.setStorageSync('usr_wx_phone', res.data.usr_phone);
							}
						} else {
							console.log(res.errMsg)
						}
					}
				})
			} else {
				console.log('登录失败！' + res.errMsg)
			}
		}
	})
}

// 判断如果没有 usr_wx_openid 和 usr_sign 就跳转到 app_jump_openid 页面重新获取用户信息
function chk_openid_jump(page_name = '', from = '') {
	// 没有获取到openid，就跳转 app_jump_openid 再获取一遍
	if (!wx.getStorageSync("usr_wx_openid")) {
		wx.showLoading({
			title: 'loading...',
		})
		wx.reLaunch({
			url: '/pages/app_jump_openid/app_jump_openid?page_name=' + page_name + '&from=' + from + '_no_openid',
		})
		return false;
	} else {
		// 如果有openid，但没有 usr_sign ，清除所有存储后，跳转 app_jump_openid 再获取一遍
		if (!wx.getStorageSync("usr_sign")) {
			wx.showLoading({
				title: 'loading...',
			})
			wx.removeStorageSync('usr_wx_openid');
			wx.removeStorageSync('usr_wx_phone');
			wx.removeStorageSync('usr_all_info');
			wx.removeStorageSync('usr_db_exist');
			wx.removeStorageSync('usr_sign');
			wx.reLaunch({
				url: '/pages/app_jump_openid/app_jump_openid?page_name=' + page_name + '&from=' + from + '_no_usr_sign',
			})
			return false;
		} else {
			return true; // 如果openid 和 sign都有，就返回true
		}
	}

}

// 只检查 usr_wx_openid 和 usr_sign 返回true|false 并弹框loading... 不做任何操作，false时需要wx.hideLoading()关闭
function have_openid() {
	if (!wx.getStorageSync("usr_wx_openid") || !wx.getStorageSync("usr_sign")) {
		wx.showLoading({
			title: 'loading...',
		})
		return false; // 没有检查信息，loading... ，返回false
	} else {
		return true; // 有信息，返回true
	}
}

// 将下面的变量暴露出来
// 只有暴露出来的变量外部才能引用
// model.exports一般是放在ts文件的最后面， 以防止变量未定义时， 就向外面暴露
module.exports = {
	//变量名   ： 将方法赋值到变量上面去使用
	get_login_openid: get_login_openid, // 链接 code_get_openid 获取openid
	chk_openid_jump: chk_openid_jump, // 判断openid 和 sign，没有就跳转到app_jump_openid
	have_openid: have_openid,
}

// var utils = require('../../../../utils/addCache');      
// utils.mySetStorage('widget-classSchedule', 'dailySchedule', this.data.classInfo)
// utils.mySetStorage('widget-classSchedule', 'time', this.data.time)